/**
 * Created with JetBrains WebStorm.
 * User: Steven
 * Date: 25-4-13
 * Time: 23:07
 * To change this template use File | Settings | File Templates.
 */

function Birthsign(name)
{
    this.id = -1; // Unique Birthsign ID
    this.name = name;
    this.effect = "";
    this.attributeModifiers = {};
}

Birthsign.prototype.addAttributeModifier = function(attributeType, value)
{
    this.attributeModifiers[attributeType] = value;
}

Birthsign.prototype.getAttributeModifier = function(attributeType)
{
    return attributeType in this.attributeModifiers ? this.attributeModifiers[attributeType] : 0;
}

Birthsign.birthsigns = [];

Birthsign.birthsigns.push(ApprenticeBirthsign);
ApprenticeBirthsign.prototype = new Birthsign("The Apprentice");
ApprenticeBirthsign.prototype.constructor = Birthsign;
function ApprenticeBirthsign()
{
    this.id = 0;
    this.effect = "The Apprentice ability confers a 100-point bonus to your Magicka attribute, but gives you a 100% "
        + "Weakness to Magic.";
}

Birthsign.birthsigns.push(AtronachBirthsign);
AtronachBirthsign.prototype = new Birthsign("The Atronach");
AtronachBirthsign.prototype.constructor = Birthsign;
function AtronachBirthsign()
{
    this.id = 1;
    this.effect = "With the Atronach ability you don't regain Magicka over time. Instead you have a permanent 50% "
        + "Spell Absorption to recharge your Magicka. Your base Magicka is also increased by 150 points.";
}

Birthsign.birthsigns.push(LadyBirthsign);
LadyBirthsign.prototype = new Birthsign("The Lady");
LadyBirthsign.prototype.constructor = Birthsign;
function LadyBirthsign()
{
    this.id = 2;
    this.effect = "The Lady's Blessing confers bonuses of 10 points to your Willpower and Endurance attributes.";
    this.addAttributeModifier(AttributeTypes.willpower, 10);
    this.addAttributeModifier(AttributeTypes.endurance, 10);
}

Birthsign.birthsigns.push(LordBirthsign);
LordBirthsign.prototype = new Birthsign("The Lord");
LordBirthsign.prototype.constructor = Birthsign;
function LordBirthsign()
{
    this.id = 3;
    this.effect = "Being born under the Lord gives you the Blood of the North lesser power to regenerate up to 90 "
        + "points of Health. However, you also gain the Trollkin curse, a permanent 25% Weakness to Fire.";
}

Birthsign.birthsigns.push(LoverBirthsign);
LoverBirthsign.prototype = new Birthsign("The Lover");
LoverBirthsign.prototype.constructor = Birthsign;
function LoverBirthsign()
{
    this.id = 4;
    this.effect = "Use the Lover's Kiss power once a day to paralyze an opponent for 10 seconds at the cost of 120 "
        + "points of Fatigue.";
}

Birthsign.birthsigns.push(MageBirthsign);
MageBirthsign.prototype = new Birthsign("The Mage");
MageBirthsign.prototype.constructor = Birthsign;
function MageBirthsign()
{
    this.id = 5;
    this.effect = "The Mage ability confers a permanent bonus of 50 points to your Magicka.";
}

Birthsign.birthsigns.push(RitualBirthsign);
RitualBirthsign.prototype = new Birthsign("The Ritual");
RitualBirthsign.prototype.constructor = Birthsign;
function RitualBirthsign()
{
    this.id = 6;
    this.effect = "Those born under the Ritual use the Mara's Gift power once a day as a powerful Restore Health "
        + "spell. The Blessed Word can turn the undead.";
}

Birthsign.birthsigns.push(SerpentBirthsign);
SerpentBirthsign.prototype = new Birthsign("The Serpent");
SerpentBirthsign.prototype.constructor = Birthsign;
function SerpentBirthsign()
{
    this.id = 7;
    this.effect = "Gain the Serpent spell to cause a slow but potent poison on touch, while simultaneously curing "
        + "yourself and dispelling magic on yourself. Casting this spell costs 100 points of Fatigue.";
}

Birthsign.birthsigns.push(ShadowBirthsign);
ShadowBirthsign.prototype = new Birthsign("The Shadow");
ShadowBirthsign.prototype.constructor = Birthsign;
function ShadowBirthsign()
{
    this.id = 8;
    this.effect = "Use the Moonshadow power once a day to become Invisible for 60 seconds.";
}

Birthsign.birthsigns.push(SteedBirthsign);
SteedBirthsign.prototype = new Birthsign("The Steed");
SteedBirthsign.prototype.constructor = Birthsign;
function SteedBirthsign()
{
    this.id = 9;
    this.effect = "The Steed ability grants a bonus of 20 to your Speed attribute.";
    this.addAttributeModifier(AttributeTypes.speed, 20);
}

Birthsign.birthsigns.push(ThiefBirthsign);
ThiefBirthsign.prototype = new Birthsign("The Thief");
ThiefBirthsign.prototype.constructor = Birthsign;
function ThiefBirthsign()
{
    this.id = 10;
    this.effect = "The Thief ability grants a 10-point bonus to your Agility, Speed, and Luck attributes.";
    this.addAttributeModifier(AttributeTypes.agility, 10);
    this.addAttributeModifier(AttributeTypes.speed, 10);
    this.addAttributeModifier(AttributeTypes.luck, 10);
}

Birthsign.birthsigns.push(TowerBirthsign);
TowerBirthsign.prototype = new Birthsign("The Tower");
TowerBirthsign.prototype.constructor = Birthsign;
function TowerBirthsign()
{
    this.id = 11;
    this.effect = "With the Tower Key power, once a day open a door or container of Average lock level or less. The "
        + "Tower Warden reflects five points of damage for 120 seconds once a day.";
}

Birthsign.birthsigns.push(WarriorBirthsign);
WarriorBirthsign.prototype = new Birthsign("The Warrior");
WarriorBirthsign.prototype.constructor = Birthsign;
function WarriorBirthsign()
{
    this.id = 12;
    this.effect = "The Warrior ability grants a bonus of 10 points to your Strength and Endurance attributes.";
    this.addAttributeModifier(AttributeTypes.strength, 10);
    this.addAttributeModifier(AttributeTypes.endurance, 10);
}